﻿
namespace SqueezeboxLib
{
    /// <summary>
    /// Represents a tag parameter pair for use with squeezebox server communication
    /// </summary>
    public class TaggedParameter
    {
        public string Tag { get; set; }

        public string Parameter { get; set; }

        /// <summary>
        /// Creates a new tagged parameter
        /// </summary>
        /// <param name="tag"></param>
        /// <param name="parameter"></param>
        public TaggedParameter(string tag, string parameter)
        {
            Tag = tag;
            Parameter = parameter;
        }

        public static TaggedParameter Parse(string taggedParameter)
        {
            string[] decodedParameters = System.Web.HttpUtility.UrlDecode(taggedParameter).Split(new[] { ':' }, 2);

            return new TaggedParameter(decodedParameters[0], decodedParameters[1]);
        }

        public override string ToString()
        {
            return Tag + ":" + Parameter;
        }
    }
}
